PHP Local File Inclusion
PHPにおいてincludeやrequireなどの関数で任意のファイルをincludeできてしまう脆弱性
PHP LFIはRemote Code Executionをするために攻撃者が自由に操作できるファイルが必要であるので、以前はサーバーに都合のいいファイルを生成するテクニックが研究されていた
有名なのはOne Line PHP Challenge - HITCON 2018 https://blog.orange.tw/2018/10/hitcon-ctf-2018-one-line-php-challenge.html?m=1
他にも色々ある: https://book.hacktricks.xyz/pentesting-web/file-inclusion#lfi2rce
しかし、長年のCTFerの探求によりファイルの操作なしにRemote Code Executionが可能と判明した
つまり、include_once($_GET["q"])だけでRCEができる
hxp ctf 2021 - includer's revengeでloknop氏が発見した
https://gist.github.com/loknop/b27422d355ea1fd0d90d6dbc1e278d4d
PHP Filterを用いて任意の文字列をincludeさせることができる
また、PHP Filterを利用してブラインドにファイル内容をリークする手法も発見された
PHP Filterを参照